load("//bazel:flags.bzl", "bool_flag")
load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_filegroup", "split_srcs_and_hdrs")

licenses(["notice"])

exports_files_legacy()

SHADER_FILES = [
    "SkBitmapProcShader.cpp",
    "SkBitmapProcShader.h",
    "SkBlendShader.cpp",
    "SkBlendShader.h",
    "SkColorFilterShader.cpp",
    "SkColorFilterShader.h",
    "SkColorShader.cpp",
    "SkColorShader.h",
    "SkCoordClampShader.cpp",
    "SkCoordClampShader.h",
    "SkEmptyShader.cpp",
    "SkEmptyShader.h",
    "SkGainmapShader.cpp",
    "SkImageShader.cpp",
    "SkImageShader.h",
    "SkLocalMatrixShader.cpp",
    "SkLocalMatrixShader.h",
    "SkPerlinNoiseShaderImpl.cpp",
    "SkPerlinNoiseShaderImpl.h",
    "SkPictureShader.cpp",
    "SkPictureShader.h",
    "SkRuntimeShader.cpp",
    "SkRuntimeShader.h",
    "SkShader.cpp",
    "SkShaderBase.cpp",
    "SkShaderBase.h",
    "SkTransformShader.cpp",
    "SkTransformShader.h",
    "SkTriColorShader.cpp",
    "SkTriColorShader.h",
    "SkWorkingColorSpaceShader.cpp",
    "SkWorkingColorSpaceShader.h",
]

split_srcs_and_hdrs(
    name = "shader",
    files = SHADER_FILES,
)

bool_flag(
    name = "legacy_shader_context",
    default = True,
)

skia_filegroup(
    name = "srcs",
    srcs = [
        ":shader_srcs",
        "//src/shaders/gradients:srcs",
    ],
    visibility = [
        "//src:__pkg__",
        "//src/core:__pkg__",
    ],
)

skia_filegroup(
    name = "private_hdrs",
    srcs = [
        ":shader_hdrs",
        "//src/shaders/gradients:private_hdrs",
    ],
    visibility = [
        "//src:__pkg__",
        "//src/core:__pkg__",
    ],
)

alias(
    name = "core_priv_hdrs",
    actual = ":private_hdrs",
    visibility = [
        "//src/core:__pkg__",
    ],
)

alias(
    name = "core_srcs",
    actual = ":srcs",
    visibility = [
        "//src/core:__pkg__",
    ],
)
